#!/bin/bash
# Viva la URSAL!
# Somos todos BOLIVAR!
# VIVA LA REVOLUCION!
#galado!
#fedora e centos tb usam systemctl
##### LISTAR INTERFACE #####
<<<<<<< HEAD
interface="$(ip route show default | awk '/default/ {print $5}' | sed -n 1p)" > /dev/null
PriMac="$(cat /sys/class/net/$interface/address)" >> /dev/null
if [ "$?" -ne "0" ];then
				echo -e "\033[31mHouve um erro! conecte a alguma rede\033[0m"
				exit -2
fi
distroName="$(lsb_release -si)"
=======
int=$(ip route show default | awk '/default/ {print $5}' | sed -n 1p)
#se não reconhecer o comando arp instala o netutils

#pegar o mac atual
#mac=arp| cut -d ' ' -f 21 | sed -n 2p
mac=$(cat /sys/class/net/$(ip route show default | awk '/default/ {print $5}' | sed -n 1p)/address)

distroName=$(lsb_release -si)
>>>>>>> 948f4d770cdb9ba484bc8a4d5f08f117f1cefdd8

#### FUNCOES ######

# Funcao para sistemas baseados em debian, onde se usa "ip set"
function debly (){
	# Reiniciando controlador
	systemctl stop networking
	if [ $? != 0 ]; then
					echo -e "\033[031m Houve um erro\003[0m: nome da daemon de internet de sua rede nao se chama \"netowking\""
					exit 1
	fi
	# Notifica
	echo "Alterando seu endereço MAC..."

	# Ordena desligar placa de rede
	while [ "$(cat /sys/class/rfkill/rfkill1/hard)" != "1" ]; do
					echo -ne "\033[031m Por favor, desligue a placa de rede\033[0m\r"
	done
	
	# alteracao de MAC
	sudo ip link set $acao address cc:98:91:b0:2d:55
	if [ $? != 0 ]; then
					echo -e "\033[031m Houve um erro\033[0m: Houve algum erro ao mudar seu endereço MAC"
					exit 1
	fi

	# Evita dar merda
	while [ "$(cat /sys/class/rfkill/rfkill1/hard)" != "0" ]; do
					echo -ne "\033[031m Por favor novamente ligue sua placa de rede\033[0m\r";				
	done
	# Iniciando a parada
	systemctl start networking

	# Sobe interface
	up=$(sudo ip link set $acao up)
	if [ "$PriMac" == "$(cat /sys/class/net/$interface/address)" ]; then
					echo "Houve um erro, o seu endereço MAC nao foi alterado"
					exit 1
	else
					echo -e "\033[032mTudo procedeu sem ocorrer erros <3\033[032m"
					exit 0
	fi
}
function distro(){
	case "$distroName" in
	"Debian")
	  echo "Debian..."
		debly
	  ;;
	"Ubuntu")
	  echo "Ubuntu..."
		debly
	  ;;
	"Elementary")
	  echo "Elementary..."
		debly
	  ;;
	"Tails")
		echo "Tails..."
		debly
	  ;;
	"Mint")
		echo "Mint..."
		debly
	   ;;
	*)
	  echo "Não está na lista..."
		# test...
	  ;;
	esac
}

##### OPCOES ######
read -r -p "Digite o nome da interface (caso nao identifique: \"N\") → " acao
if [ "$acao" == "N" ];then
	acao="$interface"
	distro
else
	acao="$acao"
	distro #call the function
fi

